import axios, {AxiosRequestConfig, AxiosResponse} from 'axios';
import baseUrl from "./baseUrl.ts";

// 创建axios实例
const request = axios.create({
    // @ts-ignore
    baseURL: baseUrl.http.baseURL,
    timeout: 5000, // 请求超时时间
});

// 请求拦截器
request.interceptors.request.use(
    // @ts-ignore
    (config: AxiosRequestConfig) => {
        // 在发送请求之前做些什么
        // 可以设置请求头等信息
        return config;
    },
    (error: any) => {
        // 对请求错误做些什么
        return Promise.reject(error);
    }
);

// 响应拦截器
request.interceptors.response.use(
    (response: AxiosResponse) => {
        // 对响应数据做些什么
        const res = response.data;
        if (res.code !== 200) {
            // 自定义错误处理
            return Promise.reject(new Error(res.message || 'Error'));
        } else {
            return res;
        }
    },
    (error: any) => {
        // 对响应错误做些什么
        return Promise.reject(error);
    }
);

// 导出封装的axios请求
export default request;
